package cn.getech.data.development.service;

import cn.getech.data.development.entity.Alarm;
import cn.getech.data.development.model.dto.AlarmNotifyDto;
import cn.getech.data.development.model.dto.AlarmSaveDto;
import cn.getech.data.development.model.vo.AlarmSearchVO;
import cn.getech.data.development.model.vo.AlarmVO;
import cn.getech.data.intelligence.common.utils.PageUtils;
import com.baomidou.mybatisplus.extension.service.IService;
import org.apache.ibatis.annotations.Param;

import java.math.BigInteger;
import java.util.List;

public interface AlarmService extends IService<Alarm> {

    boolean saveOrUpdate(AlarmSaveDto alarmSaveDto);

    AlarmVO getInfoById(Integer id);

    PageUtils alarmPage(AlarmSearchVO vo);

    /**
     * 根据传入的工作流id获取告警规则和通知对象
     *
     * @param alarmObjectIds
     * @return
     */
    List<AlarmNotifyDto> getAlarmNotifyUsers(@Param("alarmObjectIds") List<Integer> alarmObjectIds);

    /**
     * 全量查找告警接收人
     *
     * @param
     * @return
     */
    List<AlarmNotifyDto> getRecriverList();


    /**
     * 全量查找告警创建人
     *
     * @param
     * @return
     */
    List<AlarmNotifyDto> getCreaterList();

    /**
     * 根据人员id获取人员姓名
     *
     * @param
     * @return
     */
    String getUsrNameById(@Param("userId") BigInteger userId);

}
